#pragma once
#include <string>
#include <sstream>
#include <assert.h>
#define ASSERT( arg ) assert( arg )
/**
@brief Exception management
*/
class Exception
{
	std::wstring _what;
public:
	Exception(const std::wstring& what);
	virtual ~Exception(void);
	std::wstring getWhat() const;
};

std::string wstringTostring(const std::wstring &str );

std::wstring stringTowstring(const std::string &str );

template<class T>
std::wstring toString(const T& value)
{
	std::wstringstream ss;
	ss << value;
	return ss.str();
}

template<class T>
std::string toStringA(const T& value)
{
	std::stringstream ss;
	ss << value;
	return ss.str();
}